package com.boilermaker.mq.mqserver.mapper;

import com.boilermaker.mq.mqserver.core.Binding;
import com.boilermaker.mq.mqserver.core.Exchange;
import com.boilermaker.mq.mqserver.core.MSGQueue;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface MetaMapper {
    void createExchangeTable();

    void createQueueTable();

    void createBindingTable();

    void insertExchange(Exchange exchange);

    void insertQueue(MSGQueue msgQueue);

    void insertBinding(Binding binding);

    void deleteExchange(String name);

    void deleteQueue(String name);

    void deleteBinding(Binding binding);

    List<Exchange> selectAllExchanges();

    List<MSGQueue> selectAllQueue();

    List<Binding> selectAllBinding();
}
